C# out 키워드로 반환형 매개 변수 전달 방식 함수 만들기
메서드를 호출하기 전에는 굳이 지역 변수를 초기화하지 않고 호출한 메서드에서 전달한 값을 받아서 사용해야 하는 경우가 있습니다. 이런 경우에는 out 키워드를 사용하여 반환형 매개 변수 전달 방식을 사용할 수 있습니다. 다음 내용을 입력한 뒤 실행해보세요.
<코드> ParameterOut.cs
//[?] out 키워드로 반환형 매개 변수 전달 방식 함수 만들기
using System;
class ParameterOut
{
static void Do(out int num)
{
num = 1234; // [B] ref와 동일: 호출한 부분에 적용, 반드시 초기화해야 함
Console.WriteLine($"[1] {num}"); // [1] 1234
}
static void Main()
{
int num; // [A] 변수를 반드시 초기화할 필요 없음
Do(out num); // 반환형 매개 변수 전달 방식
Console.WriteLine($"[2] {num}"); // [2] 1234
}
}
</코드>
<실행>
[1] 1234
[2] 1234
</실행>
[A]번 코드처럼 지역 변수의 값을 초기화하지 않고 특정 메서드에서 초기화하는 형태가 있습니다. 이런 경우에는 ref를 사용해도 되지만 out 키워드를 사용할 수가 있습니다.
[B]번 코드에서 1234로 초기화하면 ref와 동일하게 Main 메서드의 num 지역 변수가 1234로 초기화 됩니다.
[1]번 코드에서는 Do 메서드에서 초기화된 1234가 출력되고, [2]번 코드영역에서는 Main 메서드의 num 변수가 1234로 이미 초기화되었기에 1234가 출력됩니다.
이처럼 out 키워드를 사용하는 방식은 ref와 동일하지만, 어차피 특정 메서드에서 초기화할 경우라면 전달할 때 초기화하지 않고 전달해도 됩니다.
감사합니다.
Comments
Comments are closed